#pragma once

#ifndef WIN32
# define PLUGINSTDDETAILSLIB_API
#else
# ifdef PLUGINSTDDETAILSLIB_EXPORTS
#  define PLUGINSTDDETAILSLIB_API __declspec(dllexport)
# else
#  define PLUGINSTDDETAILSLIB_API __declspec(dllimport)
# endif
#endif

#include "DefSocketImageProcXGUI.h"
#include "IPluginStdDetailsLib.h"
#include "gLibDetails.h"

extern "C" void *MXSTDMETHOD CreateClassInstance(const char *IID);

class PLUGINSTDDETAILSLIB_API  PluginStdDetailsLib: public IPluginStdDetailsLib
{
	public:		// Construction & Destruction
		PluginStdDetailsLib(void);
		virtual ~PluginStdDetailsLib(void);

	public:		// IMxPluginBase
		virtual long MXSTDMETHOD DestroyPtr(void);
		virtual long MXSTDMETHOD DuplicatePtr(void);
		virtual void *MXSTDMETHOD Dynamic_cast(const char *IID);
		virtual const char *MXSTDMETHOD GetInterfaceGUID(void);
		virtual const char *MXSTDMETHOD GetInterfaceName(void);

	public:		// Access
		virtual void InitInstance(void);

	public:		// IPluginStdDetailsLib
		virtual const char MXSTDMETHOD *GetComment(void);

	private:
		long _refCnt;
};
